SQL Serverのデータベースファイルの基本構造
from SQL Serverのバックアップ・リストア仕様
データベースファイル
code:データベースファイルの概要
+データベース-------------------------+
| +データファイル(mdf)------------+ |
| | 8KB8KB8KB8KB8KB | |
| | 8KB8KB8KB8KB8KB | |
| +------------------------------+ |
| +トランザクションログファイル(ldf)+ |
| | | |
| +------------------------------+ |
+------------------------------------+
1. データファイル
mdfやndf
ユーザーが実際に参照などを行うデータ本体
データファイルの中身
8KBのブロック(ページ)
複数用意することで書き込みを分散できる
2. トランザクションログファイル
ldf
SQL Serverがデータに対して実行した更新内容の記録
もたらされる影響を完全に理解していない限り、このログを削除または移動しないでください。
データベースを一貫性のある状態に戻すために必要
ログ先行書き込みという手法のために使う
トランザクションログファイルは必ず時系列順に書き込まれる
トランザクションログファイルで何ができるのか
1. 個別のトランザクションの復旧
ロールバックするときに使う
ROLLBACKコマンド
データベースとクライアント間にエラーが起こって正常に終われなかった変更
2. SQL Serverの起動時に未完了だったすべてのトランザクションの復旧
チェックポイントを通過する前に障害が起こった場合、データファイルに書き込む前のバッファキャッシュのデータが消失する可能性がある
SQL Serverは再起動時、データベースの復旧を試みて書き込まれなかった可能性のあるログを実行する(ロールフォワード)
/gosyujin-books/0055: 絵で見てわかるSQL Serverの仕組み.pdf#64cc4ab22c53d8000001adcf
ログ先行書き込みをしているためこういうこともできる
3. 障害時点までのロールフォワード
完全バックアップ、差分バックアップ、トランザクションログバックアップを順番に復元することでロールフォワードができる